
// 导入路由
const router = require('express').Router()
// 导入考试类
const goods = require('../model/goodsModel')
// 导入jwt模块 （jsonwebtoken）
const Jwt = require('../common/token/jwt')
// 创建商品类实例
const goodsModel = new goods()


// 添加商品分类名称
// 地址：http://127.0.0.1:4000/api/goods/category_add
// 请求：POST (不可以在浏览器地址栏测试)
// 参数：text 
// 响应数据格式: json格式
router.post('/category_add', async (req, res) => {
    // 接收前端提交的参数
    let text = req.body.text;
    // 判断text是否有值
    if (text) {
        // 执行数据库的操作
        await goodsModel.category_add(text)
            .then(
                data => {
                    // 把模型中的处理结果响应给前端
                    res.send(data);
                }
            )
            .catch(
                err => {
                    res.send(err);
                }
            )
    }
    else {
        // 提示缺少参数
        res.send({
            code: -1,
            msg: "缺少参数，请检查后再提交"
        })
    }
})


// 获取商品分类列表
// 地址：http://127.0.0.1:4000/api/goods/category_list
// 请求：GET (可以在浏览器地址栏测试)
// 参数：无
// 响应数据格式: json格式
router.get('/category_list', async (req, res) => {
    await goodsModel.category_list()
        .then(
            data => {
                // 响应数据给前端
                res.send(data)
            },
            err => {
                res.send(err);
            }
        )
})

// 删除商品分类名称
// 地址：http://127.0.0.1:4000/api/goods/category_remove
// 请求：GET (可以在浏览器地址栏测试)
// 参数：id
// 示例：http://127.0.0.1:4000/api/goods/category_remove
// 响应数据格式: json格式
router.get('/category_remove', async (req, res) => {
    let id = req.query.id;
    if (id) {
        await goodsModel.category_remove(id)
            .then(
                data => {
                    // 响应数据给前端
                    res.send(data)
                },
                err => {
                    res.send(err);
                }
            )
    }
    else {
        // 提示缺少参数
        res.send({
            code: -1,
            msg: "缺少参数，请检查后再提交"
        })
    }
})


// 修改商品分类名称
// 地址：http://127.0.0.1:4000/api/goods/category_modify
// 请求：POST (不可以在浏览器地址栏测试)
// 参数：id text 
// 响应数据格式: json格式
router.post('/category_modify', async (req, res) => {
    // 接收前端提交的参数
    let { id, text } = req.body;
    // 判断参数是否有值
    if (id == undefined || text == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数，请检查在提交"
        })
    }
    else {
        await goodsModel.category_modify(id, text)
            .then(
                data => {
                    res.send(data)
                },
                err => {
                    res.send(err);
                }
            )
    }
})

// 新增商品
// 地址：http://127.0.0.1:4000/api/goods/topic_add
// 请求：POST (不可以在浏览器地址栏测试)
// 参数：ame, is_promote, price, original_price, option, categoryId, description, imgUrl
// 响应数据格式: json格式
router.post('/goods_add', async (req, res) => {
    // 接收前端提交的参数
    let { name, is_promote, price, original_price, option, categoryId, description, imgUrl } = req.body; 
    // 判断参数是否有值
    if (categoryId) {
        // 执行数据库的操作
        await goodsModel.goods_add(name, price, original_price, categoryId, is_promote, option, description, imgUrl)
            .then(data => {
                res.send(data);
            })
            .catch(err => {
                res.send(err);
            });
    } else {
        // 提示缺少参数
        res.send({
            code: -1,
            msg: "缺少参数，请检查后再提交"
        });
    }
});

// 删除商品
// 地址：http://127.0.0.1:4000/api/goods/topic_remove
// 请求：GET (可以在浏览器地址栏测试)
// 参数：tid
// 响应数据格式: json格式
router.get('/goods_remove', async (req, res) => {
    let id = req.query.id;
    if (id) {
        await goodsModel.goods_remove(id)
            .then(
                data => {
                    // 响应数据给前端
                    res.send(data)
                },
                err => {
                    res.send(err);
                }
            )
    }
    else {
        // 提示缺少参数
        res.send({
            code: -1,
            msg: "缺少参数，请检查后再提交"
        })
    }
})


// 获取商品列表（分页）
// 地址：http://127.0.0.1:4000/api/goods/goods_items
// 请求：GET (可以在浏览器地址栏测试)
// 参数：page, pageSize
// 响应数据格式: json格式
router.get('/goods_items', async (req, res) => {
    let { page, pageSize } = req.query;
    if (page == undefined || pageSize == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数"
        })
    }
    else {
        await goodsModel.goods_items(page, pageSize)
            .then(
                data => {
                    // 响应数据给前端
                    res.send(data)
                },
                err => {
                    res.send(err);
                }
            )
    }
})


//把当前这个路由挂在模块系统对象上
module.exports = router